Nonvolatile memory, such as flash memory, is a type of memory that retains stored data even after power is removed. To remove data from individual memory cells in an array of flash memory, sectors are erased, for example by creating a strong electric field between the charge-storing layer (such as a floating gate or silicon nitride layer) that causes the extraction of trapped electrons in the charge-storing layer of each memory cell. Sometimes, however, an erasure operation overshoots and causes some memory cells' threshold voltage Vth to fall below an acceptable level. A low Vth may cause excessive bit line current leakage that can result in subsequent read errors.
Soft programming provides a way of correcting the Vth of these over-corrected memory cells. Soft programming applies voltage pulses that are lower than a programming voltage level across each word line that has one or more memory cells with a Vth below a particular level. Soft programming may include the application of a high voltage on the drains of each cell via the bit lines during application of a soft programming pulse. This high voltage may cause the bit line current leakage to be much higher than the current leakage otherwise would be during verification. This higher current leakage may reduce the actual soft programming voltage pulse applied to the cells in two ways. First, the higher current may overload a charge pump that provides the programming pulse, thereby limiting the voltage the charge pump may supply. Second, the higher current results in a high IR (voltage) drop, which causes a lower voltage to be actually supplied to each cell. This increase in the bit line current leakage may cause soft programming to slow down significantly or even fail in extreme cases, even when verification is operating appropriately. The soft programming process remains at a given word line having memory cells with unacceptably low Vth values until all memory cells in the word line are verified.
In situations where other over-corrected memory cells along later word lines cause bit line current leakage, the leakage may interfere with verification of the soft programming process at the given word line. This interference may also cause the overall soft programming process to either slow down, resulting in poor erase performance of the overall memory, or fail entirely. Further, bit line current leakage may cause the soft programming process to overshoot an ideal Vth for the given word line, resulting in a smaller operating window and reduced reliability during regular programming.